This invention relates to data processing, and more particularly to a systems and methods supporting processes involving activities such as generation, alteration, distribution, authentication and validation of documents. More particularly, the invention concerns such systems and methods providing representing and reasoning with independent user and system states for activities within a process, using typed dependencies to describe relationships between activities, and/or providing resolution of conflicts between what a user wants to do and a predetermined model of the activities.
It is not uncommon in the workplace for a process to be performed requiring input from or authorisation by a number of users. For example, it may be necessary for a report to be prepared by authors A, B and C, where B cannot make his contribution before A has completed his, and C cannot make his contribution before B has completed his. Furthermore, it may be necessary for persons to sign or otherwise give authenticity to the report, such that E cannot sign until D has given his authorisation. A multitude of combinations of requirements and constraints of this type are possible.
Existing systems for supporting the co-ordination of work, such as workflow systems, embody a model of how the work should be carried out, i.e. a predetermined model defining, inter alia, the order in which activities constituting a process are to be carried out, and, where appropriate, by whom. This is powerful in that it provides relatively systematic coverage of what may be a very complex set of work activities, but it has the serious problem in that the description of what should be done in the ideal case may not correspond to the most appropriate way of carrying out real instances of the work, which are driven more by the local contingencies around each particular case rather than idealised abstractions. This is especially true if the kind of work to be supported is knowledge intensive rather than highly routine.
Current process support systems, such as workflow systems, represent .work in terms of ordered sequences of activities. Although different systems use slightly different naming conventions, these activities can typically be in one of three states:
(a) Inactive, which means that the conditions for carrying out the activity have not yet been met.
(b) Active, which means that the activity is available to be worked on.
(c) Completed, which means that the activity has been carried out. This will be referred to as the xe2x80x9ctraditionalxe2x80x9d approach. Reasoning over these states is typically used to co-ordinate and control the process. When the activity is completed, the next activities (or activity) move from the Inactive state to the Active state, and when these are completed the next ones become Active, and so on until the entire process has been completed. This works fairly well for some highly repetitive and routine activities, but it is becoming more and more common to try to use process support technologies for work which has more knowledge intensive components and which requires more flexible interpretation of the activities and their interrelationships. In such cases, the above described model employed in the traditional approach is excessively rigid in the way it interprets the flow of work and in what it allows the user to do.
There is therefore a need for a system which addresses the above problem and provides increased flexibility.
The present invention provides a method carried out in a data processing system involving at least one activity, the activity being performed by at least one user, comprising: for the or each activity, assigning a user state from one of a plurality of user states, and assigning a system state from one of a plurality of system states, the system state and the user state being independent.
The method may include the step of changing the system state of the activity in response to a change in the user state, and vice versa.
The method may relate to at least a first and a second activity, each activity being performed by at least one user, the method comprising: for each activity, assigning a user state from one of a plurality of user states, and assigning a system state from one of a plurality of system states, the system state and the user state being independent, and changing the user state and/or system state of the second activity when the user state and/or system state of the first activity satisfy a predetermined condition.
The invention addresses the aforementioned problems by representing and reasoning with descriptions of what the user is actually doing as well as an idealised representation of the work.
An advantage of the invention is that this arrangement allows deviations from the normative process to be carried out routinely while maintaining a representation of any discrepancies between what is xe2x80x9csupposedxe2x80x9d to happen (according to a predetermined model of the process) and what is, xe2x80x9creallyxe2x80x9d happening.
The invention improves flexibility by introducing a mechanism to support reasoning over the process flow using a parallel set of system and user states, so that the discrepancies can be used to maintain a record of any mismatch.
The present invention further provides a method, carried out in a data processing system, involving at least a first and a second activity, each activity being performed by at least one user, comprising: for each activity, defining a relationship between that activity and the or each other activity, said relationship being one of a plurality of predetermined different relationships.
Preferably, each activity has a plurality of associated states, the method further including the step of decomposing the or each relationship into a set of activities and a set of constraints between states of the activities.
The invention addresses the aforementioned problems by allowing the representation and implementation of a process model which combines richer semantics and avoids having to specify arbitrary relationships. This effectively defines a space of possible routes to achieve the work described rather than an arbitrary route through it.
The invention models work processes by defining relationships between activities which may be of different types. An advantage is that these types are defined to correspond more closely to relationships in the work (user) domain than in the system domain. This gives two benefits as far as the process modelling is concerned. First, it allows work to be modelled more accurately, thus reducing the mismatch between the model and the realities of how it is carried out. Second, although the increased number of distinctions which have to be made may increase the complexity for the modeller, this is countered by the fact that some relationships result in simpler models being possible.
Furthermore, in the traditional workflow model intended to embody such processes, little scope is left for a user to have control over the order in which activities are carried out. As the work being supported becomes more complex and knowledge intensive, the traditional model forces the user to carry it out in ways which may be sub-optimal for the local contingencies of particular instances of the work.
One solution which is sometimes used is to allow exceptions to the canonical process to be defined for particular instances (i.e. the process is redefined for these instances). However, if an excessive number of exceptions have to be defined, it suggests that the initial model of the work and its implementation is unsatisfactory. In fact, it is almost impossible to produce a model of work which is so accurate that it will faithfully describe the work supported under all circumstances. If it is made too open-ended, the structural support provided is likely to be so weak that it is not very helpful to the user.
There is therefore a need for a system which addresses the above problems.
The present invention further provides a method carried out in a data processing system involving at least a first and a second activity, each activity being performed by at least one user and having a plurality of possible states, comprising: for each activity detecting a change of state requested by a user, detecting whether the change of state conflicts with a predetermined model, and using an interactor to determine how to resolve any conflict so detected.
Preferably, the method includes the step of passing information about the conflict to the interactor, the interactor determining either that (1) the conflicting change should be accepted, or that (2) the user is to be authorised to determine whether or not he may deviate from the predetermined model.
The invention addresses the aforementioned problems by providing mechanisms for giving users more informed choice over the activities they carry out by allowing potential conflicts between what the user wants to do and the model of the work represented within the system to be resolved, by delegating decision making to the most appropriate place The invention achieves this by passing information about the conflict to the interactor, which can determine whether the conflict should be accepted, or can pass it on for the user to determine how appropriate it really is to deviate from the normative, predetermined model of the process. This contrasts with the traditional techniques in which the process model on its own determines whether or not a proposed activity is permissible.
Two embodiments implementing the mechanism are described. One relies on additional information about the relationships between activities- for a more detailed discussion of such dependencies, see section C below. The second technique makes use of conjoint representations of user behaviour and model-based states; for a detailed discussion of states assigned to activities, see section B below.
In particular embodiments, the method of the present invention may further comprise: for the or each activity, assigning a user state from one of a plurality of user states, assigning a system state from one of a plurality of system states, the system state and the user state being independent, and associating each system state so assigned with a plurality of assigned user states.
Each of the plurality of assigned user states may comprise an assigned user state a respective user.
The present invention extends the technique of using independent user and system states by enabling the representation of the state of activities of multiple independent users alongside the system state. This extends functionality by allowing, for example, the support of activities which require collaboration among multiple users such as co-authoring; increased flexibility in the granularity at which activities are represented; and improved awareness of other users who might be in a position to carry out an activity.
These techniques can be used where multiple workers may have some role to play in completing a given activity. For example, improved awareness of other users who might be in a position to carry out an activity; the support of activities which require collaboration among multiple users such as co-authoring; increased flexibility in the granularity at which activities are represented (e.g. by representing a complex database update in relation to the set of users who have the information required to perform it). [Co-ordination of access to change. text or a database is not directly supported. by the present invention, although it can be used to give feedback on current status. More specific access or locking controls can be implemented via techniques well known in the art.]
Alternatively, the plurality of assigned user states may comprise a plurality of chronologically sequential user assigned user states, and may include the currently assigned user state.
Known techniques do not have any mechanism for tracking the history of interaction with an activity. The invention also extends the techniques already described by enabling the representation of a number of parallel xe2x80x9cmicro-participationsxe2x80x9d for each user involved in an activity. This allows the history of interaction to be recorded, for example, to support any necessary rework or to support reflection on the process.
The invention further provides a programmable data processing system including processing means, memory and a user interface, when suitably programmed for carrying out the method of any of the appended claims, or according to any of the particular embodiments described herein.